import { constantRoutes, asyncRoutes } from '@/router'
// 因为动态路由、静态路由很多地方要用到。所以在veux操作。
const state = {
  // 默认就有静态路由。随后进入动态路由
  routes: constantRoutes
}
const mutations = {
  // 操作路由表
  setRouters (state, newRoters) {
    // 把传进来新的路由加上静态路由一起合并成一个新数组
    // 那么这个新数组就既有静态路由也有传入的值
    // 静态+动态路由:显示在左侧菜单栏。
    state.routes = [...constantRoutes, ...newRoters]
  }
}
const actions = {
  // 得到动态路由
  getAsyncRoutes (context, menus) {
    //  筛选过滤动态路由：
    let routes = asyncRoutes.filter(item => menus.includes(item.name))
    routes.push({ path: '*', redirect: '/404', hidden: true })
    // 提交操作后的结果
    context.commit('setRouters', routes)
    return routes
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}
